package com.lzh.o2o.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.lzh.o2o.pojo.Product;

/**
 * @author haohao:
 * @date 创建时间：2018年9月16日 下午8:32:36
 * @version 1.0
 * @parameter
 * @since
 * @return
 */
public interface ProductDao {
	/**
	 * 
	 * @Title: insertProduct
	 * @Description: 插入商品信息
	 * @param product
	 * @return int
	 * @author haohao
	 * @date 2018年9月16日下午8:33:07
	 */
	int insertProduct(Product product);

	/**
	 * 
	 * @Title: queryProductById
	 * @Description: 获取单个商品的信息，商品编辑的时候使用
	 * @param productId
	 * @return Product
	 * @author haohao
	 * @date 2018年9月17日下午6:32:11
	 */
	Product queryProductById(long productId);

	/**
	 * 
	 * @Title: updateProduct
	 * @Description: 根据传入的商品实体类，更新商品的信息
	 * @param product
	 * @return int
	 * @author haohao
	 * @date 2018年9月17日下午6:33:10
	 */
	int updateProduct(Product product);

	/**
	 * 
	 * @Title: queryList
	 * @Description: 查询商品列表并分页，可输入的条件有：商品名（模糊）,商品状态，店铺ID ,商品类别
	 * @param productConition
	 * @param rowIndex
	 * @param pageSize
	 * @return List<Product>
	 * @author haohao
	 * @date 2018年9月18日上午10:23:22
	 */
	List<Product> queryProuctList(@Param("productCondition") Product productCondition, @Param("rowIndex") int rowIndex,
			@Param("pageSize") int pageSize);

	/**
	 * 
	 * @Title: queryProductCount
	 * @Description: 根据上面分页条件查询符合条件有多少人进行分页
	 * @param productCondition
	 * @return int
	 * @author haohao
	 * @date 2018年9月18日上午10:24:49
	 */
	int queryProductCount(@Param("productCondition") Product productCondition);
	
	/**
	 * 
	* @Title: updateProductCategoryToNull 
	* @Description: 删除商品类别的时候，要将商品类别Id置为空 
	* @param productCategoryId
	* @return int
	* @author haohao
	* @date 2018年9月18日下午12:46:31
	 */
	int updateProductCategoryToNull(long productCategoryId);

}
